/**
 *  ^ 不进行进位的加法
 *  & 判断进位点, 如果true 就需要自己手动进位
 *  << 左移一位,  进位了. 
 */

function sum(a, b) {
    // 这里的一点技巧
    return b? (sum(a ^ b, (a & b )<<1)) : a;
}